package com.shxy.rlzy.service;

import com.shxy.rlzy.entity.RoleMenu;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author tanhao
 * @since 2021-08-16
 */
public interface IRoleMenuService extends IService<RoleMenu> {

    /**
     * 初始化角色菜单
     */
    void initRoleMenus();

    /**
     * 初始化角色菜单
     * @param roleId
     * @return
     */
    List<RoleMenu> initRoleMenus(Long roleId);

    /**
     * 设置角色菜单列表
     * @param roleId
     * @param menuIds
     */
    void setRoleMenus(Long roleId, List<Long> menuIds);

    /**
     * 获取角色菜单列表
     * @param roleId
     * @return
     */
    List<RoleMenu> listByRoleId(Long roleId);

    /**
     * 刷新角色权限缓存
     * @param roleId
     */
    void refreshRoleAuthorities(Long roleId);

    /**
     * 根据角色删除
     * @param roleId
     * @return
     */
    boolean deleteByRole(Long roleId);

    /**
     * 根据菜单删除
     * @param menuId
     * @return
     */
    boolean deleteByMenu(Long menuId);

    /**
     * 根据角色菜单删除
     * @param roleId
     * @param menuId
     * @return
     */
    boolean deleteByRoleMenu(Long roleId, Long menuId);
}
